home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-17 / herkules.zip / HERKULES.DOC < prev    next >
Text File  |  1991-08-22  |  3KB  |  58 lines

  1. Here is some piece of software I wrote about two years ago. Yesterday, someone
  2. suggested me to post it to comp.binaries.ibm.pc, and so I herewith give it to
  3. the public. It's a bios driver for herkules graphics mode, which hooks into
  4. INT 10h (video) and supports a new video mode #8 with 720x360 dots. As it uses
  5. characters of 8x8, this means 90x45 characters for those (few) programs that
  6. use bios for screen access. Any others might get somehow confused! Also, on
  7. my machine to clear the WHOLE screen on MsDos CLS command, I had to remove
  8. ANSI.SYS.
  9. This program uses two different methods of scrolling. First, the usual one:
  10. copy almost 32kB of waitstatey video memory. This is *SLOW*, but some programs
  11. require it, so I made it default. Second: Change the CRT controllers display
  12. start adress. This is *FAST*, but... Use option /F when starting this program
  13. to activate this mode.
  14. The source code (assembly) is included. I did it in MASM 4. To build it your-
  15. self, use:
  16. MASM HERKULES;
  17. LINK HERKULES;
  18. REM ignore warning NO STACK
  19. DEL HERKULES.OBJ
  20. EXE2BIN HERKULES.EXE HERKULES.COM
  21. DEL HERKULES.EXE
  22. The comments in the source are german :-)
  23. I did quite some effort on using fastscrolling whenever it might be of
  24. advantage. For example, if /F is given and the bios is requested to scroll
  25. let's say a rectangular portion in the middle of the display. Then I will
  26. change the display start adress, thus scrolling the WHOLE screen up, and then
  27. scroll/rotate those areas which weren't supposed to be scrolled (those
  28. surrounding the above rectangular) back using memory copying. Quite smart, eh?
  29. But it was of no use. I found NO program that scrolls only PORTIONS of the
  30. screen AND that works with my program. Sigh.
  31. Something else: I stole the 8x8 characterset from the GRAFTABL command of DOS
  32. and then included it into this program. This implies two disadvantages:
  33. I might get sacked by uSoft and it uses 2048 bytes both on disk and in memory.
  34.  
  35. Hey, I just remembered one other feature: line printer support!
  36. This program supports text AND graphic hardcopies on various printers.
  37. There is a patch area at the beginning of the COM file containing pascal
  38. strings (first byte containing length). Do modify it, use DEBUG or SYMDEB.
  39. Then at offset 10Fh there will be a byte containing the number of the printer
  40. to use for hardcopies. 0 means LPT1, 1 = LPT2 etc. Cereal printers :-)
  41. (RS232) are not supported :-(
  42. At offset 110h there is a pascal string which is sent BEFORE a text hard-
  43. copy. This could be a form feed or I don't know what.
  44. 120h   pascal string sent AFTER a text hardcopy
  45. 130h   pascal string sent BEFORE a graphic hardcopy
  46. 140h   pascal string sent AFTER a graphic hardcopy
  47. 150h   pascal string sent BEFORE each line of graphics hardcopy
  48.        This should set the printer into some graphics mode and also
  49.        tell him how much data there will come, that is 720 bytes.
  50.        Each byte will contain eight vertical dots.
  51. 160h   pascal string sent AFTER each line of graphics hardcopy
  52.        This should include the command to move up the paper by
  53.        the appropriate amount required in graphics mode (8/72" ?)
  54.  
  55.  
  56.                                             Have fun
  57.                                       Stressi (q81955@pbhrzx)
  58.